using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using BlueFinity.mvNET.CoreObjects;

namespace fenk.Ventas
{
    public partial class TalonarioPedidos : mvLibrary.BaseForm
    {
        public TalonarioPedidos()
        {
            InitializeComponent();
        }

        private void LeerComprobante(string tipoComprobante)
        {
            // limpiar variable que guarda el reporte
            AplicData.Contents = "";
            _item[4] = tipoComprobante;
            CallProgram("TALONARIO.NET", 1, 1);
            String report = AplicData.ToString;
            if (report == "ERROR")
            {
                report = "<HTML>" + DataBASIC.AM + "<p><p><p><H3><font color=red align=center>COMPROBANTE NO EXISTE</font><h1></html>" + DataBASIC.AM;
                //MessageBox.Show("Comprobante no existe !");
                //mvTextBox1.Focus();
                //return;
            }
            // guardar reporte en disco
            try
            {
                using (StreamWriter sw = new StreamWriter("C:\\report.htm"))
                {
                    int a;
                    for (a = 1; a <= DataBASIC.Count(report, DataBASIC.AM); ++a)
                    {
                        sw.WriteLine(DataBASIC.Field(report, DataBASIC.AM, a));
                    }
                }
            }
            catch (IOException IOex)
            {
                MessageBox.Show(IOex.Message);
                return;
            }
     
        }
        private void CargarSobreComprobantes()
        {
             // remitos
            Remito1.Text = _item.get_Text(5, 1, 1);
            Remito2.Text = _item.get_Text(5, 2, 1);
            Remito3.Text = _item.get_Text(5, 3, 1);
            tabPage2.Text = "S/Remito " +Remito1.Text + " " + Remito2.Text + " " + Remito3.Text;
            // facturas
            Factura1.Text = _item.get_Text(6, 1, 1);
            Factura2.Text = _item.get_Text(6, 2, 1);
            Factura3.Text = _item.get_Text(6, 3, 1);
            tabPage3.Text = "S/Factura " + Factura1.Text + " " + Factura2.Text + " " + Factura3.Text;
          
        }
        private void LeerFactura(string factura)
        {
            _item[2] = factura;
            _item[12] = "SC";
            LeerComprobante("F");
            webBrowser3.Visible = true; 
            webBrowser3.Navigate("C:\\report.htm");
        }
        private void LeerRemito(string remito)
        {
            _item[2] = remito;
            _item[12] = "SC";
            LeerComprobante("R");
            webBrowser2.Visible = true;
            webBrowser2.Navigate("C:\\report.htm");
        }
       
        private void GetInvoiceNumber(string operacion)
        {
            if (mvTextBox1.Text == "")
            {
                MessageBox.Show("Ingrese comprobante");
                mvTextBox1.Focus();
                return;
            }
            // obtener comprobante previo o siguiente
            if (operacion != "")
            {
                try
                {
                    int factura = int.Parse(mvTextBox1.Text);
                    if (operacion == "P")
                    {
                        if (factura > 0)
                        {
                            mvTextBox1.Text = Convert.ToString(--factura);
                        }
                    }
                    else
                    {
                        mvTextBox1.Text = Convert.ToString(++factura);
                    }
                }
                catch
                {
                    MessageBox.Show("Ingrese letra y numero de comprobante. \nEjemplo: A37000");
                    return;
                }
            }
            // comprobante principal
            _item[1] = mvTextBox1.Text;
            // sobre comprobante
            _item[2] = "";
            _item[12] = "";
            LeerComprobante("P");
            CargarSobreComprobantes();
            webBrowser1.Navigate("C:\\report.htm");
            webBrowser2.DocumentText = "";
            webBrowser2.Visible = false;
            webBrowser3.DocumentText = "";
            webBrowser3.Visible = false;

            this.Text = "Talonario " + InputValue;

        }
       
              
        private void readButton_Click(object sender, EventArgs e)
        {
            GetInvoiceNumber("");
            mvTextBox1.Focus();
        }
        private void prevButton_Click(object sender, EventArgs e)
        {
            GetInvoiceNumber("P");
            mvTextBox1.Focus();
        }
        private void nextButton_Click(object sender, EventArgs e)
        {
            GetInvoiceNumber("N");
            mvTextBox1.Focus();
        }

        private void Factura1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (Factura1.Text != "")
            {
                LeerFactura(Factura1.Text);
            }
        }

        private void Factura2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (Factura2.Text != "")
            {
                LeerFactura(Factura2.Text);
            }
        }

        private void Factura3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (Factura3.Text != "")
            {
                LeerFactura(Factura3.Text);

            }
        }

        private void Remito1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (Remito1.Text != "")
            {
                LeerRemito(Remito1.Text);
            }
        }

        private void Remito2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (Remito2.Text != "")
            {
                LeerRemito(Remito2.Text);
            }
        }

        private void Remito3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (Remito3.Text != "")
            {
                LeerRemito(Remito3.Text);
            }
        }
        private void tabPage2_Enter(object sender, EventArgs e)
        {
            // Al activarse por primera vez la solapa REMITOS lee directamente SC # 1
            if (Remito1.Text != "" & webBrowser2.DocumentText=="")
            {
                LeerRemito(Remito1.Text);
            }
        }

        private void tabPage3_Enter(object sender, EventArgs e)
        {
            // Al activarse por primera vez la solapa FACTURAS lee directamente SC # 1
            if (Factura1.Text != "" & webBrowser3.DocumentText == "")
            {
                LeerFactura(Factura1.Text);
            }
        }

        private void TalonarioPedidos_Load(object sender, EventArgs e)
        {
            toolBox.Visible = false;
        }

        
   }
}

